package com.tcm.service;

import com.tcm.entity.dto.MessageDto;
import com.tcm.entity.dto.param.BattleItemCorrectParam;
import com.tcm.entity.vo.BattleItemDescribeResp;
import com.tcm.entity.vo.BattleRoomInfoResp;
import com.tcm.entity.vo.BattleTopicResp;

import java.util.List;
import java.util.Map;

/**
 * PK对战核心业务接口
 * @author Guqier
 * @version 1.0
 * @date 2023/9/17 20:30
 */
public interface BattleCoreService {
    List<MessageDto> startMatch(Long userId);

    BattleTopicResp getTopic(Long userId, Long courseId);

    List<MessageDto> correctTopic(BattleItemCorrectParam param, Long userId);

    List<MessageDto> getBattleDetail(Long userId);

    List<BattleItemDescribeResp> getDescribes(Long userId);

    Boolean exitMatch(Long userId);

    Map<String, String> createBattleRoom(Long userId, Integer maxNum);

    Map<String, String> getRoomInvitationCode(Long roomId, Long userId);

    List<MessageDto> joinRoom(Long userId, String code);

    List<MessageDto> startRoomBattle(Long userId);

    BattleRoomInfoResp getRoomInfo(Long userId);

    List<MessageDto> exit(Long userId);
}
